package vsvm.classifier;

import java.awt.Component;
import java.io.Serializable;

import vsvm.data.model.AbstractDataModel;
import vsvm.gui.IActionsProvider;
import vsvm.gui.IConfigurable;
import vsvm.gui.IQuickInfoProvider;

public abstract class AbstractClassifier implements IConfigurable, IActionsProvider, Serializable, IQuickInfoProvider{
	public static final int STATUS_UNTRAINED = 1;
	public static final int STATUS_TRAINED = 2;
	
	public abstract void train(AbstractDataModel data);
	public abstract void train(AbstractDataModel data, Component c);
	public abstract AbstractTestSet test(TestingParameters params);
	public abstract void classify(AbstractDataModel data);
	
	
	
	protected int status;
	
	public int getStatus() {
		return status;
	}
	
	protected String name;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public String toString() {
		return name;
	}

	
}
